signed(A,B,C,C):-
    unifyNow(A,D),
    unifyNow(B,E),
    D>127,
    !,
    F is D-256,
    E=F.
signed(A,B,C,C):-
    unifyAll(A,B).
:-op(600,xfy,xor).
:-static([mem(A),pc,y,x,s,dl,a,ir,p,n,v,b,d,i,z,c,irq,nmi,ifsync,rw,so,reset,ready]).
status_report(A,A):-
    r_read_value(pc,B),
    r_read_value(y,C),
    r_read_value(x,D),
    r_read_value(dl,E),
    r_read_value(a,F),
    r_read_value(ir,G),
    r_read_value(rw,H),
    r_read_value(s,I),
    r_read_value(c,J),
    r_read_value(z,K),
    write(('pc=',B,' y=',C,' x=',D,' dl=',E,' a=',F,' ir=',G,' rw=',H,' s=',I,' c=',J,' z=',K)).
r_0immed1(A,B,['$t'((r_0immed1(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
immed(A,B,C):-
    r_read_value(pc,D),
    r_0immed1(A,D,B,C),
    r_read_value(pc,E),
    r_read_value(pc,F),
    G is F+1,
    E<=G.
zp(A,B,C):-
    r_read_value(pc,D),
    read(D,A,B,C),
    r_read_value(pc,E),
    r_read_value(pc,F),
    G is F+1,
    E<=G.
abs(A,B,C):-
    r_read_value(pc,D),
    E is D+1,
    r_read_value(pc,F),
    ab(E,F,A,B,C),
    r_read_value(pc,G),
    r_read_value(pc,H),
    I is H+2,
    G<=I.
r_1indx1(A,B,C,D,E,F,$(G,H,I,J)):-
    r_subFin(I,J),
    r_1indx1(A,B,C,D,E,F,G,H).
r_1indx1(A,B,C,D,E,F,$(G,H,I,J)):-
    unifyNext(A,K),
    unifyNext(B,L),
    unifyNext(C,M),
    unifyNext(D,N),
    unifyNext(E,O),
    unifyNext(F,P),
    r_subNotFin(r_1indx1(K,L,M,N,O,P,$(Q,R,S,T)),$(Q,R,S,T),G,H,I,J).
r_2indx1(A,B,C,D,E,F):-
    ulist(D,G,H),
    ulist(H,I,J),
    unifyNow(I,K),
    ulist(J,L,M),
    unifyNow(L,N),
    ulist(M,O,P),
    ulist(P,Q,R),
    ulist(R,S,T),
    uconst(S,U),
    ulist(T,V,W),
    uconst(V,K),
    ulist(W,X,Y),
    uconst(X,Z),
    unifyAll([A1,B1,C1],Y),
    r_subBegin(E,D1,E1,F1),
    r_0indx1(A,B,C,G,I,L,O,Q,E1,G1),
    r_read_value(x,U),
    K is N+U,
    Z is K+1,
    read_2(Z,I,O,Q,G1,['$t'(H1,I1,J1,$(K1,L1,notEmpty))|M1]),
    r_1indx1(C,G,B,A1,B1,C1,$(E,F,D1,['$t'(H1,I1,J1,$(K1,L1,notEmpty))|M1])).
r_1indx1(A,B,C,D,E,F,G,H):-
    uconst(D,I),
    uconst(E,J),
    uconst(F,K),
    ab(A,B,C,G,H),
    r_read_value(pc,I),
    r_read_value(pc,J),
    K is J+1,
    I<=K.
r_0indx1(A,B,C,D,E,F,G,H,['$t'((r_0indx1(I,J,K,L,M,N,O,P,Q,R),S),T,U,V)|Q],['$t'(S,T,U,V)|R]):-
    unifyNowNext(A,W,I),
    unifyNowNext(B,X,J),
    unifyNowNext(C,Y,K),
    unifyNowNext(D,Z,L),
    unifyNowNext(E,W,M),
    unifyNowNext(F,X,N),
    unifyNowNext(G,Y,O),
    unifyNowNext(H,Z,P).
r_2indx1(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_2indx1(A,B,C,D,E,F).
r_2indx1(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_2indx1(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
indx(A,B,C):-
    r_subBegin(B,D,E,F),
    r_eq(A,G,E,H),
    r_read_value(pc,I),
    read(I,G,H,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_2indx1(P,A,Q,[R,S,T,U,V,W,X,Y,Z,A1,B1],$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_1indy1(A,B,C,D,E,F,G,$(H,I,J,K)):-
    r_subFin(J,K),
    r_1indy1(A,B,C,D,E,F,G,H,I).
r_1indy1(A,B,C,D,E,F,G,$(H,I,J,K)):-
    unifyNext(A,L),
    unifyNext(B,M),
    unifyNext(C,N),
    unifyNext(D,O),
    unifyNext(E,P),
    unifyNext(F,Q),
    unifyNext(G,R),
    r_subNotFin(r_1indy1(L,M,N,O,P,Q,R,$(S,T,U,V)),$(S,T,U,V),H,I,J,K).
r_2indy1(A,B,C,D,E,F,G,H,I,J,K):-
    unifyNow(B,L),
    uconst(C,M),
    uconst(D,N),
    uconst(E,O),
    uconst(F,P),
    uconst(G,Q),
    uconst(H,R),
    uconst(I,S),
    r_subBegin(J,T,U,V),
    r_eq(A,B,U,W),
    M is L+1,
    ab(M,B,B,W,['$t'(X,Y,Z,$(A1,B1,notEmpty))|C1]),
    r_1indy1(N,O,A,P,Q,R,S,$(J,K,T,['$t'(X,Y,Z,$(A1,B1,notEmpty))|C1])).
r_1indy1(A,B,C,D,E,F,G,H,I):-
    uconst(A,J),
    uconst(B,K),
    unifyNow(C,L),
    uconst(D,K),
    uconst(E,M),
    uconst(F,N),
    uconst(G,O),
    r_read_value(y,J),
    K is L+J,
    r_0indy1(C,K,H,I),
    r_read_value(pc,M),
    r_read_value(pc,N),
    O is N+1,
    M<=O.
r_0indy1(A,B,['$t'((r_0indy1(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_2indy1(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    r_subFin(L,M),
    r_2indy1(A,B,C,D,E,F,G,H,I,J,K).
r_2indy1(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    unifyNext(A,N),
    unifyNext(B,O),
    unifyNext(C,P),
    unifyNext(D,Q),
    unifyNext(E,R),
    unifyNext(F,S),
    unifyNext(G,T),
    unifyNext(H,U),
    unifyNext(I,V),
    r_subNotFin(r_2indy1(N,O,P,Q,R,S,T,U,V,$(W,X,Y,Z)),$(W,X,Y,Z),J,K,L,M).
indy(A,B,C):-
    r_subBegin(B,D,E,F),
    r_eq(A,G,E,H),
    r_read_value(pc,I),
    read(I,G,H,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_2indy1(A,P,Q,R,S,T,U,V,W,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_1zpx1(A,B,C,D,E,F,G,H,I,J):-
    uconst(A,K),
    uconst(B,L),
    unifyNow(C,M),
    uconst(D,L),
    uconst(F,N),
    uconst(G,O),
    uconst(H,P),
    r_read_value(x,K),
    L is M+K/\255,
    r_0zpx1(E,L,I,J),
    r_read_value(pc,N),
    r_read_value(pc,O),
    P is O+1,
    N<=P.
r_0zpx1(A,B,['$t'((r_0zpx1(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_1zpx1(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    r_subFin(K,L),
    r_1zpx1(A,B,C,D,E,F,G,H,I,J).
r_1zpx1(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    unifyNext(A,M),
    unifyNext(B,N),
    unifyNext(C,O),
    unifyNext(D,P),
    unifyNext(E,Q),
    unifyNext(F,R),
    unifyNext(G,S),
    unifyNext(H,T),
    r_subNotFin(r_1zpx1(M,N,O,P,Q,R,S,T,$(U,V,W,X)),$(U,V,W,X),I,J,K,L).
zpx(A,B,C):-
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    r_read_value(pc,J),
    read(J,H,I,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_1zpx1(Q,R,G,S,A,T,U,V,$(B,C,D,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_1zpy1(A,B,C,D,E,F,G,H,I,J):-
    uconst(A,K),
    uconst(B,L),
    unifyNow(C,M),
    uconst(D,L),
    uconst(F,N),
    uconst(G,O),
    uconst(H,P),
    r_read_value(y,K),
    L is M+K/\255,
    r_0zpy1(E,L,I,J),
    r_read_value(pc,N),
    r_read_value(pc,O),
    P is O+1,
    N<=P.
r_0zpy1(A,B,['$t'((r_0zpy1(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_1zpy1(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    r_subFin(K,L),
    r_1zpy1(A,B,C,D,E,F,G,H,I,J).
r_1zpy1(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    unifyNext(A,M),
    unifyNext(B,N),
    unifyNext(C,O),
    unifyNext(D,P),
    unifyNext(E,Q),
    unifyNext(F,R),
    unifyNext(G,S),
    unifyNext(H,T),
    r_subNotFin(r_1zpy1(M,N,O,P,Q,R,S,T,$(U,V,W,X)),$(U,V,W,X),I,J,K,L).
zpy(A,B,C):-
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    r_read_value(pc,J),
    read(J,H,I,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_1zpy1(Q,R,G,S,A,T,U,V,$(B,C,D,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_1absy1(A,B,C,D,E,F,G,H,I,J):-
    uconst(A,K),
    uconst(B,L),
    unifyNow(C,M),
    uconst(D,L),
    uconst(F,N),
    uconst(G,O),
    uconst(H,P),
    r_read_value(y,K),
    L is M+K,
    r_0absy1(E,L,I,J),
    r_read_value(pc,N),
    r_read_value(pc,O),
    P is O+2,
    N<=P.
r_0absy1(A,B,['$t'((r_0absy1(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_1absy1(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    r_subFin(K,L),
    r_1absy1(A,B,C,D,E,F,G,H,I,J).
r_1absy1(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    unifyNext(A,M),
    unifyNext(B,N),
    unifyNext(C,O),
    unifyNext(D,P),
    unifyNext(E,Q),
    unifyNext(F,R),
    unifyNext(G,S),
    unifyNext(H,T),
    r_subNotFin(r_1absy1(M,N,O,P,Q,R,S,T,$(U,V,W,X)),$(U,V,W,X),I,J,K,L).
absy(A,B,C):-
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    r_read_value(pc,J),
    K is J+1,
    r_read_value(pc,L),
    ab(K,L,H,I,['$t'(M,N,O,$(P,Q,notEmpty))|R]),
    r_1absy1(S,T,G,U,A,V,W,X,$(B,C,D,['$t'(M,N,O,$(P,Q,notEmpty))|R])).
r_1absx1(A,B,C,D,E,F,G,H,I,J):-
    uconst(A,K),
    uconst(B,L),
    unifyNow(C,M),
    uconst(D,L),
    uconst(F,N),
    uconst(G,O),
    uconst(H,P),
    r_read_value(x,K),
    L is M+K,
    r_0absx1(E,L,I,J),
    r_read_value(pc,N),
    r_read_value(pc,O),
    P is O+2,
    N<=P.
r_0absx1(A,B,['$t'((r_0absx1(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_1absx1(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    r_subFin(K,L),
    r_1absx1(A,B,C,D,E,F,G,H,I,J).
r_1absx1(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    unifyNext(A,M),
    unifyNext(B,N),
    unifyNext(C,O),
    unifyNext(D,P),
    unifyNext(E,Q),
    unifyNext(F,R),
    unifyNext(G,S),
    unifyNext(H,T),
    r_subNotFin(r_1absx1(M,N,O,P,Q,R,S,T,$(U,V,W,X)),$(U,V,W,X),I,J,K,L).
absx(A,B,C):-
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    r_read_value(pc,J),
    K is J+1,
    r_read_value(pc,L),
    ab(K,L,H,I,['$t'(M,N,O,$(P,Q,notEmpty))|R]),
    r_1absx1(S,T,G,U,A,V,W,X,$(B,C,D,['$t'(M,N,O,$(P,Q,notEmpty))|R])).
push(A,B,C):-
    r_read_value(s,D),
    E is 256+D,
    write(E,A,B,C),
    r_read_value(s,F),
    r_read_value(s,G),
    H is G-1,
    F<=H.
r_0pull1(A,B,C,D,E):-
    uconst(A,F),
    uconst(B,G),
    r_read_value(s,F),
    G is 256+F,
    read(G,C,D,E).
r_0pull1(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_0pull1(A,B,C,D,E).
r_0pull1(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_0pull1(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
pull(A,B,C):-
    r_subBegin(B,D,['$t'(E,F,G,$(H,I,notEmpty))|J],K),
    r_read_value(s,L),
    r_read_value(s,M),
    N is M+1,
    L<=N,
    r_0pull1(O,P,A,$(B,C,D,['$t'(E,F,G,$(H,I,notEmpty))|J])).
r_0opex0(A,B):-
    run(A,B).
r_0opex0($(A,B,C,D)):-
    r_subFin(C,D),
    r_0opex0(A,B).
r_0opex0($(A,B,C,D)):-
    r_subNotFin(r_0opex0($(E,F,G,H)),$(E,F,G,H),A,B,C,D).
opex(A,B):-
    r_subBegin(A,C,['$t'(D,E,F,$(G,H,notEmpty))|I],J),
    r_read_value(ready,K),
    K<=0,
    r_0opex0($(A,B,C,['$t'(D,E,F,$(G,H,notEmpty))|I])).
setnz(A,B,B):-
    unifyNow(A,0),
    !,
    r_read_value(z,C),
    C<=1,
    r_read_value(n,D),
    D<=0.
setnz(A,B,B):-
    unifyNow(A,C),
    C<0,
    !,
    r_read_value(z,D),
    D<=0,
    r_read_value(n,E),
    E<=1.
setnz(A,B,B):-
    unifyNow(A,C),
    C>0,
    !,
    r_read_value(z,D),
    D<=0,
    r_read_value(n,E),
    E<=0.
branch(A,B,B):-
    uatom(A,0),
    r_read_value(pc,C),
    r_read_value(pc,D),
    E is D+1,
    C<=E.
r_0branch1(A,B,C,D,E,F,G):-
    uconst(A,H),
    uconst(B,I),
    unifyNow(D,J),
    uconst(E,K),
    r_read_value(pc,H),
    r_read_value(pc,I),
    signed(C,D,F,G),
    K is I+1+J,
    H<=K.
r_0branch1(A,B,C,D,E,$(F,G,H,I)):-
    r_subFin(H,I),
    r_0branch1(A,B,C,D,E,F,G).
r_0branch1(A,B,C,D,E,$(F,G,H,I)):-
    unifyNext(A,J),
    unifyNext(B,K),
    unifyNext(C,L),
    unifyNext(D,M),
    unifyNext(E,N),
    r_subNotFin(r_0branch1(J,K,L,M,N,$(O,P,Q,R)),$(O,P,Q,R),F,G,H,I).
branch(A,B,C):-
    uatom(A,1),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    r_read_value(pc,J),
    read(J,H,I,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_0branch1(Q,R,G,S,T,$(B,C,D,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_12decimal_adjust1(A,B,C,D,E,$(F,G,H,I)):-
    r_subFin(H,I),
    r_12decimal_adjust1(A,B,C,D,E,F,G).
r_12decimal_adjust1(A,B,C,D,E,$(F,G,H,I)):-
    unifyNext(A,J),
    unifyNext(B,K),
    unifyNext(C,L),
    unifyNext(D,M),
    unifyNext(E,N),
    r_subNotFin(r_12decimal_adjust1(J,K,L,M,N,$(O,P,Q,R)),$(O,P,Q,R),F,G,H,I).
r_13decimal_adjust1(A,B,C,D,E,F,G,H):-
    uconst(D,I),
    uconst(E,J),
    uconst(F,K),
    r_subBegin(G,L,M,N),
    r_eq(A,B,M,O),
    r_1decimal_adjust1(B,O,['$t'(P,Q,R,$(S,T,notEmpty))|U]),
    r_12decimal_adjust1(A,C,I,J,K,$(G,H,L,['$t'(P,Q,R,$(S,T,notEmpty))|U])).
r_0decimal_adjust1(A,B,B):-
    unifyNow(A,C),
    D is C>>7/\1,
    r_read_value(a,E),
    D is E>>7/\1,
    !,
    r_read_value(v,F),
    G is C>>7/\1,
    r_read_value(a,H),
    I is H>>7/\1,
    J is C>>7/\1,
    r_read_value(a,K),
    L is K>>7/\1,
    M is-(G)/\I\/(J/\ -(L)),
    F<=M,
    r_read_value(c,N),
    O is C>>8/\1,
    N<=O.
r_0decimal_adjust1(A,B,B).
r_11decimal_adjust1(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_11decimal_adjust1(A,B,C).
r_11decimal_adjust1(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_11decimal_adjust1(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
r_12decimal_adjust1(A,B,C,D,E,F,G):-
    unifyNow(B,H),
    uconst(C,I),
    uconst(D,J),
    uconst(E,K),
    r_subBegin(F,L,M,N),
    r_eq(A,B,M,['$t'(O,P,Q,$(R,S,notEmpty))|T]),
    r_read_value(a,I),
    J is H/\255,
    I<=J,
    r_11decimal_adjust1(K,$(F,G,L,['$t'(O,P,Q,$(R,S,notEmpty))|T])).
r_10decimal_adjust1(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_10decimal_adjust1(A,B,C,D,E).
r_10decimal_adjust1(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_10decimal_adjust1(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
r_1decimal_adjust1(A,B,C):-
    r_read_value(d,1),
    !,
    r_subBegin(B,D,E,F),
    r_eq(A,G,E,H),
    r_2decimal_adjust1(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_10decimal_adjust1(A,O,P,$(B,C,D,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_9decimal_adjust1(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_9decimal_adjust1(A,B,C,D).
r_9decimal_adjust1(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_9decimal_adjust1(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
r_10decimal_adjust1(A,B,C,D,E):-
    r_subBegin(D,F,G,H),
    r_eq(A,B,G,I),
    r_4decimal_adjust1(B,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_9decimal_adjust1(A,C,$(D,E,F,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_2decimal_adjust1(A,B,C):-
    unifyNow(A,D),
    E is D/\15,
    E>9,
    !,
    F is D/\255+6,
    G=F,
    r_3decimal_adjust1(A,G,B,C).
r_3decimal_adjust1(A,B,['$t'((r_3decimal_adjust1(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_2decimal_adjust1(A,B,B).
r_8decimal_adjust1(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_8decimal_adjust1(A,B,C).
r_8decimal_adjust1(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_8decimal_adjust1(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
r_9decimal_adjust1(A,B,C,D):-
    r_subBegin(C,E,F,G),
    r_eq(A,B,F,H),
    r_5decimal_adjust1(B,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_8decimal_adjust1(A,$(C,D,E,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_4decimal_adjust1(A,B,B):-
    unifyNow(A,C),
    r_read_value(c,0),
    !,
    r_read_value(c,D),
    E is C>>8/\1,
    D<=E.
r_4decimal_adjust1(A,B,B).
r_8decimal_adjust1(A,B,C):-
    r_7decimal_adjust1(A,B,C).
r_5decimal_adjust1(A,B,C):-
    unifyNow(A,D),
    E is D/\240>>4,
    E>9,
    !,
    F is D/\255+96,
    G=F,
    r_6decimal_adjust1(A,G,B,C).
r_6decimal_adjust1(A,B,['$t'((r_6decimal_adjust1(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_5decimal_adjust1(A,B,B).
r_7decimal_adjust1(A,B,B):-
    unifyNow(A,C),
    r_read_value(c,0),
    !,
    r_read_value(c,D),
    E is C>>8/\1,
    D<=E.
r_7decimal_adjust1(A,B,B).
r_1decimal_adjust1(A,B,B).
r_11decimal_adjust1(A,B,C):-
    uconst(A,D),
    r_read_value(a,D),
    setnz(D,B,C).
r_13decimal_adjust1(A,B,C,D,E,F,$(G,H,I,J)):-
    r_subFin(I,J),
    r_13decimal_adjust1(A,B,C,D,E,F,G,H).
r_13decimal_adjust1(A,B,C,D,E,F,$(G,H,I,J)):-
    unifyNext(A,K),
    unifyNext(B,L),
    unifyNext(C,M),
    unifyNext(D,N),
    unifyNext(E,O),
    unifyNext(F,P),
    r_subNotFin(r_13decimal_adjust1(K,L,M,N,O,P,$(Q,R,S,T)),$(Q,R,S,T),G,H,I,J).
decimal_adjust(A,B,C):-
    r_subBegin(B,D,E,F),
    r_eq(A,G,E,H),
    r_0decimal_adjust1(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_13decimal_adjust1(A,O,P,Q,R,S,$(B,C,D,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_0ab3(A,B,C,['$t'((r_0ab3(D,E,F,G,H),I),(J is K<<8+L,M=J,N),O,P)|G],['$t'(I,N,O,P)|H]):-
    unifyNowNext(A,M,D),
    unifyNowNext(B,K,E),
    unifyNowNext(C,L,F).
ab(A,B,C,D,E):-
    read_2(A,B,F,G,D,H),
    r_0ab3(C,F,G,H,E).
r_1read2(A,B,C,D):-
    read_1(A,B,C,D).
r_0read2(A,B,['$t'((r_0read2(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_1read2(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_1read2(A,B,C,D).
r_1read2(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_1read2(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
read(A,B,C,D):-
    r_subBegin(C,E,F,G),
    r_eq(A,'$t'(H,I),F,J),
    r_read_value(rw,K),
    K<=1,
    r_0read2('$t'(H,I),H,J,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_1read2(A,B,$(C,D,E,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
r_1read_12(A,B,C,D):-
    read_1(A,B,C,D).
r_0read_12(A,B,['$t'((r_0read_12(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_1read_12(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_1read_12(A,B,C,D).
r_1read_12(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_1read_12(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
read_1(A,B,C,D):-
    r_subBegin(C,E,F,G),
    r_eq(A,'$t'(H,I),F,J),
    r_read_value(ready,0),
    !,
    int(J,K),
    L=H,
    r_0read_12('$t'(H,I),L,K,['$t'(M,N,O,$(P,Q,notEmpty))|R]),
    r_1read_12(A,B,$(C,D,E,['$t'(M,N,O,$(P,Q,notEmpty))|R])).
r_2read_12(A,B,['$t'((r_2read_12(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
read_1(A,B,C,D):-
    unifyNow(A,E),
    r_read_value(mem(E),F),
    r_2read_12(B,F,C,D).
r_1read_24(A,B,C,D,E,F):-
    uconst(C,G),
    unifyNow(D,G),
    read(A,B,E,H),
    r_0read_24(D,G,H,F).
r_0read_24(A,B,['$t'((r_0read_24(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_1read_24(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_1read_24(A,B,C,D,E,F).
r_1read_24(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_1read_24(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
read_2(A,B,C,D,E,F):-
    r_subBegin(E,G,H,I),
    r_eq(A,J,H,K),
    r_eq(C,L,K,M),
    read(J,L,M,['$t'(N,O,P,$(Q,R,notEmpty))|S]),
    r_1read_24(B,D,T,C,$(E,F,G,['$t'(N,O,P,$(Q,R,notEmpty))|S])).
r_2write2(A,B,C,D,D):-
    unifyNow(A,E),
    uconst(B,F),
    unifyNow(C,G),
    r_read_value(mem(E),F),
    F<=G.
r_0write2(A,B,['$t'((r_0write2(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_1write2(A,B,['$t'((r_1write2(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_2write2(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_2write2(A,B,C,D,E).
r_2write2(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_2write2(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
write(A,B,C,D):-
    r_subBegin(C,E,F,G),
    r_eq(A,'$t'(H,I),F,J),
    r_eq(B,'$t'(K,L),J,M),
    r_read_value(rw,N),
    N<=0,
    r_0write2('$t'(H,I),H,M,O),
    r_1write2('$t'(K,L),K,O,['$t'(P,Q,R,$(S,T,notEmpty))|U]),
    r_2write2(A,V,B,$(C,D,E,['$t'(P,Q,R,$(S,T,notEmpty))|U])).
r_0intstk0(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_0intstk0(A,B,C,D).
r_0intstk0(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_0intstk0(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
r_1intstk0(A,B,C,D,E,F):-
    uconst(A,G),
    uconst(B,H),
    uconst(C,I),
    uconst(D,J),
    r_subBegin(E,K,L,M),
    r_read_value(pc,G),
    H is G/\255,
    push(H,L,['$t'(N,O,P,$(Q,R,notEmpty))|S]),
    r_0intstk0(I,J,$(E,F,K,['$t'(N,O,P,$(Q,R,notEmpty))|S])).
r_0intstk0(A,B,C,D):-
    uconst(A,E),
    uconst(B,F),
    r_read_value(p,E),
    push(E,C,D),
    r_read_value(i,F),
    F<=1.
r_1intstk0(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_1intstk0(A,B,C,D,E,F).
r_1intstk0(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_1intstk0(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
intstk(A,B):-
    r_subBegin(A,C,D,E),
    r_read_value(pc,F),
    G is F>>8/\255,
    push(G,D,['$t'(H,I,J,$(K,L,notEmpty))|M]),
    r_1intstk0(N,O,P,Q,$(A,B,C,['$t'(H,I,J,$(K,L,notEmpty))|M])).
r_0int0(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_0int0(A,B,C,D,E).
r_0int0(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_0int0(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
r_1int0(A,B,C,D,E,F):-
    uconst(C,G),
    uconst(D,H),
    r_subBegin(E,I,J,K),
    r_eq(A,B,J,L),
    ab(65533,65532,B,L,['$t'(M,N,O,$(P,Q,notEmpty))|R]),
    r_0int0(G,A,H,$(E,F,I,['$t'(M,N,O,$(P,Q,notEmpty))|R])).
r_0int0(A,B,C,D,D):-
    uconst(A,E),
    unifyNow(B,F),
    uconst(C,G),
    r_read_value(pc,E),
    E<=F,
    r_read_value(i,G),
    G<=1.
r_1int0(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_1int0(A,B,C,D,E,F).
r_1int0(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_1int0(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
int(A,B):-
    r_subBegin(A,C,['$t'(D,E,F,$(G,H,notEmpty))|I],J),
    r_read_value(reset,0),
    !,
    r_read_value(reset,K),
    K<=1,
    r_read_value(irq,L),
    L<=1,
    r_read_value(nmi,M),
    M<=1,
    r_read_value(ready,N),
    N<=1,
    r_1int0(O,P,Q,R,$(A,B,C,['$t'(D,E,F,$(G,H,notEmpty))|I])).
r_3int0(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_3int0(A,B,C,D,E).
r_3int0(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_3int0(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
r_4int0(A,B,C,D,E):-
    uconst(C,F),
    r_subBegin(D,G,H,I),
    intstk(H,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_3int0(A,B,F,$(D,E,G,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_2int0(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_2int0(A,B,C,D).
r_2int0(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_2int0(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
r_3int0(A,B,C,D,E):-
    uconst(C,F),
    r_subBegin(D,G,H,I),
    r_eq(A,B,H,J),
    ab(65531,65530,B,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_2int0(F,A,$(D,E,G,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_2int0(A,B,C,C):-
    uconst(A,D),
    unifyNow(B,E),
    r_read_value(pc,D),
    D<=E.
r_4int0(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_4int0(A,B,C,D,E).
r_4int0(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_4int0(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
int(A,B):-
    r_subBegin(A,C,['$t'(D,E,F,$(G,H,notEmpty))|I],J),
    r_read_value(nmi,0),
    !,
    r_read_value(nmi,K),
    K<=1,
    r_4int0(L,M,N,$(A,B,C,['$t'(D,E,F,$(G,H,notEmpty))|I])).
r_6int0(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_6int0(A,B,C,D).
r_6int0(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_6int0(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
r_7int0(A,B,C,D,E):-
    uconst(C,F),
    r_subBegin(D,G,H,I),
    r_eq(A,B,H,J),
    ab(65535,65534,B,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_6int0(F,A,$(D,E,G,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_5int0(A,A):-
    r_read_value(b,1).
r_5int0(A,A):-
    r_read_value(irq,0),
    r_read_value(i,0).
r_6int0(A,B,C,C):-
    uconst(A,D),
    unifyNow(B,E),
    r_read_value(pc,D),
    D<=E.
r_7int0(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_7int0(A,B,C,D,E).
r_7int0(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_7int0(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
int(A,B):-
    r_subBegin(A,C,D,E),
    r_5int0(D,F),
    !,
    intstk(F,['$t'(G,H,I,$(J,K,notEmpty))|L]),
    r_read_value(b,M),
    M<=0,
    r_7int0(N,O,P,$(A,B,C,['$t'(G,H,I,$(J,K,notEmpty))|L])).
int(A,A).
r_1run0(A,B):-
    run1(A,B).
r_0run0(A,B):-
    r_read_value(reset,0),
    !,
    int(A,B).
r_0run0(A,A).
r_1run0($(A,B,C,D)):-
    r_subFin(C,D),
    r_1run0(A,B).
r_1run0($(A,B,C,D)):-
    r_subNotFin(r_1run0($(E,F,G,H)),$(E,F,G,H),A,B,C,D).
run(A,B):-
    r_subBegin(A,C,D,E),
    r_0run0(D,['$t'(F,G,H,$(I,J,notEmpty))|K]),
    r_1run0($(A,B,C,['$t'(F,G,H,$(I,J,notEmpty))|K])).
run1(A,A):-
    r_read_value(ready,0),
    !,
    r_empty(A).
r_5run10(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    r_subFin(L,M),
    r_5run10(A,B,C,D,E,F,G,H,I,J,K).
r_5run10(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    unifyNext(A,N),
    unifyNext(B,O),
    unifyNext(C,P),
    unifyNext(D,Q),
    unifyNext(E,R),
    unifyNext(F,S),
    unifyNext(G,T),
    unifyNext(H,U),
    unifyNext(I,V),
    r_subNotFin(r_5run10(N,O,P,Q,R,S,T,U,V,$(W,X,Y,Z)),$(W,X,Y,Z),J,K,L,M).
r_6run10(A,B,C,D,E,F):-
    uconst(C,G),
    ulist(D,H,I),
    ulist(I,J,K),
    uconst(J,L),
    ulist(K,M,N),
    uconst(M,O),
    ulist(N,P,Q),
    uconst(P,R),
    ulist(Q,S,T),
    uconst(S,U),
    ulist(T,V,W),
    uconst(V,X),
    ulist(W,Y,Z),
    uconst(Y,A1),
    ulist(Z,B1,C1),
    uconst(B1,D1),
    unil(C1),
    r_subBegin(E,E1,F1,G1),
    r_eq(A,B,F1,H1),
    r_read_value(pc,G),
    read(G,B,H1,['$t'(I1,J1,K1,$(L1,M1,notEmpty))|N1]),
    r_5run10(A,H,L,O,R,U,X,A1,D1,$(E,F,E1,['$t'(I1,J1,K1,$(L1,M1,notEmpty))|N1])).
r_4run10(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_4run10(A,B,C,D).
r_4run10(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_4run10(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
r_5run10(A,B,C,D,E,F,G,H,I,J,K):-
    unifyNow(B,L),
    uconst(C,M),
    uconst(D,N),
    uconst(E,O),
    uconst(F,P),
    uconst(G,Q),
    uconst(H,R),
    uconst(I,S),
    r_subBegin(J,T,U,V),
    r_eq(A,B,U,['$t'(W,X,Y,$(Z,A1,notEmpty))|B1]),
    r_read_value(ir,M),
    M<=L,
    r_read_value(pc,N),
    r_read_value(pc,O),
    P is O+1,
    N<=P,
    r_read_value(ifsync,Q),
    Q<=0,
    r_4run10(R,S,$(J,K,T,['$t'(W,X,Y,$(Z,A1,notEmpty))|B1])).
r_3run10($(A,B,C,D)):-
    r_subFin(C,D),
    r_3run10(A,B).
r_3run10($(A,B,C,D)):-
    r_subNotFin(r_3run10($(E,F,G,H)),$(E,F,G,H),A,B,C,D).
r_4run10(A,B,C,D):-
    uconst(A,E),
    uconst(B,F),
    r_subBegin(C,G,H,I),
    r_read_value(ir,E),
    F is E/\3,
    run_decode(F,H,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_3run10($(C,D,G,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_2run10($(A,B,C,D)):-
    r_subFin(C,D),
    r_2run10(A,B).
r_2run10($(A,B,C,D)):-
    r_subNotFin(r_2run10($(E,F,G,H)),$(E,F,G,H),A,B,C,D).
r_3run10(A,B):-
    r_subBegin(A,C,D,E),
    int(D,['$t'(F,G,H,$(I,J,notEmpty))|K]),
    r_2run10($(A,B,C,['$t'(F,G,H,$(I,J,notEmpty))|K])).
r_1run10($(A,B,C,D)):-
    r_subFin(C,D),
    r_1run10(A,B).
r_1run10($(A,B,C,D)):-
    r_subNotFin(r_1run10($(E,F,G,H)),$(E,F,G,H),A,B,C,D).
r_2run10(A,B):-
    r_subBegin(A,C,D,E),
    r_0run10(D,F),
    status_report(F,['$t'(G,H,I,$(J,K,notEmpty))|L]),
    r_1run10($(A,B,C,['$t'(G,H,I,$(J,K,notEmpty))|L])).
r_1run10(A,B):-
    run(A,B).
r_0run10(A,A):-
    r_read_value(so,1),
    !,
    r_read_value(v,B),
    B<=1.
r_0run10(A,A).
r_6run10(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_6run10(A,B,C,D,E,F).
r_6run10(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_6run10(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
run1(A,B):-
    r_subBegin(A,C,['$t'(D,E,F,$(G,H,notEmpty))|I],J),
    r_read_value(ifsync,K),
    K<=1,
    r_6run10(L,M,N,[O,P,Q,R,S,T,U,V],$(A,B,C,['$t'(D,E,F,$(G,H,notEmpty))|I])).
run_decode(A,B,C):-
    uatom(A,1),
    !,
    r_read_value(ir,D),
    E is D>>5/\7,
    F=E,
    group1('$t'(F,G),B,C).
run_decode(A,B,C):-
    uatom(A,2),
    !,
    r_read_value(ir,D),
    E is D>>5/\7,
    F=E,
    group2('$t'(F,G),B,C).
run_decode(A,B,C):-
    uatom(A,0),
    !,
    r_read_value(ir,D),
    group3(D,B,C).
run_decode(A,B,C):-
    uatom(A,3),
    !,
    opex(B,C).
group1(A,B,C):-
    uatom(A,0),
    ora(B,C).
group1(A,B,C):-
    uatom(A,1),
    and(B,C).
group1(A,B,C):-
    uatom(A,2),
    eor(B,C).
group1(A,B,C):-
    uatom(A,3),
    adc(B,C).
group1(A,B,C):-
    uatom(A,4),
    sta(B,C).
group1(A,B,C):-
    uatom(A,5),
    lda(B,C).
group1(A,B,C):-
    uatom(A,6),
    cmp(B,C).
group1(A,B,C):-
    uatom(A,7),
    sbc(B,C).
group2(A,B,C):-
    uatom(A,0),
    asl(B,C).
group2(A,B,C):-
    uatom(A,1),
    rol(B,C).
group2(A,B,C):-
    uatom(A,2),
    lsr(B,C).
group2(A,B,C):-
    uatom(A,3),
    ror(B,C).
group2(A,B,C):-
    uatom(A,4),
    stx(B,C).
group2(A,B,C):-
    uatom(A,5),
    ldx(B,C).
group2(A,B,C):-
    uatom(A,6),
    dec(B,C).
group2(A,B,C):-
    uatom(A,7),
    inc(B,C).
group3(A,B,C):-
    uatom(A,0),
    !,
    brk(B,C).
group3(A,B,C):-
    uatom(A,8),
    !,
    php(B,C).
group3(A,B,C):-
    uatom(A,40),
    !,
    plp(B,C).
group3(A,B,C):-
    uatom(A,72),
    !,
    pha(B,C).
group3(A,B,C):-
    uatom(A,104),
    !,
    pla(B,C).
group3(A,B,C):-
    uatom(A,16),
    !,
    bpl(B,C).
group3(A,B,C):-
    uatom(A,48),
    !,
    bmi(B,C).
group3(A,B,C):-
    uatom(A,80),
    !,
    bvc(B,C).
group3(A,B,C):-
    uatom(A,112),
    !,
    bvs(B,C).
group3(A,B,C):-
    uatom(A,144),
    !,
    bcc(B,C).
group3(A,B,C):-
    uatom(A,208),
    !,
    bne(B,C).
group3(A,B,C):-
    uatom(A,240),
    !,
    beq(B,C).
group3(A,B,C):-
    uatom(A,176),
    !,
    bcs(B,C).
group3(A,B,C):-
    uatom(A,24),
    !,
    clc(B,C).
group3(A,B,C):-
    uatom(A,56),
    !,
    sec(B,C).
group3(A,B,C):-
    uatom(A,88),
    !,
    cli(B,C).
group3(A,B,C):-
    uatom(A,120),
    !,
    sei(B,C).
group3(A,B,C):-
    uatom(A,184),
    !,
    clv(B,C).
group3(A,B,C):-
    uatom(A,216),
    !,
    cld(B,C).
group3(A,B,C):-
    uatom(A,248),
    !,
    sed(B,C).
group3(A,B,C):-
    uatom(A,32),
    !,
    jsr(B,C).
r_0group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_0group31(A,B,C).
r_0group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_0group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
r_1group31(A,B,C,D,E,F):-
    r_subBegin(E,G,H,I),
    r_eq(A,B,H,J),
    r_eq(C,D,J,K),
    read(B,D,K,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_0group31(C,$(E,F,G,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
r_0group31(A,B,C):-
    bit(A,B,C).
r_1group31(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_1group31(A,B,C,D,E,F).
r_1group31(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_1group31(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
group3(A,B,C):-
    uatom(A,36),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    zp(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_1group31(G,P,Q,R,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_2group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_2group31(A,B,C).
r_2group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_2group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
r_3group31(A,B,C,D,E,F):-
    r_subBegin(E,G,H,I),
    r_eq(A,B,H,J),
    r_eq(C,D,J,K),
    read(B,D,K,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_2group31(C,$(E,F,G,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
r_2group31(A,B,C):-
    bit(A,B,C).
r_3group31(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_3group31(A,B,C,D,E,F).
r_3group31(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_3group31(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
group3(A,B,C):-
    uatom(A,44),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    abs(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_3group31(G,P,Q,R,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
group3(A,B,C):-
    uatom(A,64),
    !,
    rti(B,C).
group3(A,B,C):-
    uatom(A,76),
    !,
    jmp(B,C).
group3(A,B,C):-
    uatom(A,108),
    !,
    jmp(B,C).
group3(A,B,C):-
    uatom(A,96),
    !,
    rts(B,C).
r_4group31(A,B,C):-
    sty(A,B,C).
r_4group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_4group31(A,B,C).
r_4group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_4group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,132),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    zp(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_4group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_5group31(A,B,C):-
    sty(A,B,C).
r_5group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_5group31(A,B,C).
r_5group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_5group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,140),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    abs(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_5group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_6group31(A,B,C):-
    sty(A,B,C).
r_6group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_6group31(A,B,C).
r_6group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_6group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,148),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    zpx(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_6group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
group3(A,B,C):-
    uatom(A,136),
    !,
    dey(B,C).
group3(A,B,C):-
    uatom(A,200),
    !,
    iny(B,C).
group3(A,B,C):-
    uatom(A,232),
    !,
    inx(B,C).
group3(A,B,C):-
    uatom(A,152),
    !,
    tya(B,C).
group3(A,B,C):-
    uatom(A,168),
    !,
    tay(B,C).
r_7group31(A,B,C):-
    ldy(A,B,C).
r_7group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_7group31(A,B,C).
r_7group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_7group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,160),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    immed(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_7group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_8group31(A,B,C):-
    ldy(A,B,C).
r_8group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_8group31(A,B,C).
r_8group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_8group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,164),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    zp(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_8group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_9group31(A,B,C):-
    ldy(A,B,C).
r_9group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_9group31(A,B,C).
r_9group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_9group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,172),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    abs(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_9group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_10group31(A,B,C):-
    ldy(A,B,C).
r_10group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_10group31(A,B,C).
r_10group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_10group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,180),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    zpx(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_10group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_11group31(A,B,C):-
    ldy(A,B,C).
r_11group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_11group31(A,B,C).
r_11group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_11group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,188),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    absz(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_11group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_12group31(A,B,C):-
    cpy(A,B,C).
r_12group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_12group31(A,B,C).
r_12group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_12group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,192),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    immed(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_12group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_13group31(A,B,C):-
    cpy(A,B,C).
r_13group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_13group31(A,B,C).
r_13group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_13group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,196),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    zp(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_13group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_14group31(A,B,C):-
    cpy(A,B,C).
r_14group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_14group31(A,B,C).
r_14group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_14group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,204),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    abs(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_14group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_15group31(A,B,C):-
    cpx(A,B,C).
r_15group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_15group31(A,B,C).
r_15group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_15group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,224),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    immed(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_15group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_16group31(A,B,C):-
    cpx(A,B,C).
r_16group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_16group31(A,B,C).
r_16group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_16group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,228),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    zp(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_16group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_17group31(A,B,C):-
    cpx(A,B,C).
r_17group31(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_17group31(A,B,C).
r_17group31(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_17group31(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
group3(A,B,C):-
    uatom(A,236),
    r_subBegin(B,D,E,F),
    r_eq(G,H,E,I),
    !,
    abs(H,I,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_17group31(G,$(B,C,D,['$t'(J,K,L,$(M,N,notEmpty))|O])).
group3(A,B,C):-
    opex(B,C).
addrs1(A,B,C):-
    r_read_value(ir,D),
    E is D>>2/\7,
    addrs1('$t'(E,F),A,B,C).
addrs1(A,B,C,D):-
    uatom(A,0),
    indx(B,C,D).
addrs1(A,B,C,D):-
    uatom(A,1),
    zp(B,C,D).
addrs1(A,B,C,D):-
    uatom(A,2),
    immed(B,C,D).
addrs1(A,B,C,D):-
    uatom(A,3),
    abs(B,C,D).
addrs1(A,B,C,D):-
    uatom(A,4),
    indy(B,C,D).
addrs1(A,B,C,D):-
    uatom(A,5),
    zpx(B,C,D).
addrs1(A,B,C,D):-
    uatom(A,6),
    absy(B,C,D).
addrs1(A,B,C,D):-
    uatom(A,7),
    absx(B,C,D).
r_1ora0(A,B,C,D,E,F,$(G,H,I,J)):-
    r_subFin(I,J),
    r_1ora0(A,B,C,D,E,F,G,H).
r_1ora0(A,B,C,D,E,F,$(G,H,I,J)):-
    unifyNext(A,K),
    unifyNext(B,L),
    unifyNext(C,M),
    unifyNext(D,N),
    unifyNext(E,O),
    unifyNext(F,P),
    r_subNotFin(r_1ora0(K,L,M,N,O,P,$(Q,R,S,T)),$(Q,R,S,T),G,H,I,J).
r_2ora0(A,B,C,D,E,F,G,H,I,J,K):-
    uconst(F,L),
    uconst(G,M),
    uconst(H,N),
    uconst(I,O),
    r_subBegin(J,P,Q,R),
    r_eq(A,B,Q,S),
    r_eq(C,D,S,T),
    read(B,D,T,['$t'(U,V,W,$(X,Y,notEmpty))|Z]),
    r_1ora0(C,E,L,M,N,O,$(J,K,P,['$t'(U,V,W,$(X,Y,notEmpty))|Z])).
r_0ora0(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_0ora0(A,B,C).
r_0ora0(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_0ora0(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
r_1ora0(A,B,C,D,E,F,G,H):-
    unifyNow(B,I),
    uconst(C,J),
    uconst(D,K),
    uconst(E,L),
    uconst(F,M),
    r_subBegin(G,N,O,P),
    r_eq(A,B,O,['$t'(Q,R,S,$(T,U,notEmpty))|V]),
    r_read_value(a,J),
    r_read_value(a,K),
    L is K/\I,
    J<=L,
    r_0ora0(M,$(G,H,N,['$t'(Q,R,S,$(T,U,notEmpty))|V])).
r_0ora0(A,B,C):-
    uconst(A,D),
    r_read_value(a,D),
    setnz(D,B,C).
r_2ora0(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    r_subFin(L,M),
    r_2ora0(A,B,C,D,E,F,G,H,I,J,K).
r_2ora0(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    unifyNext(A,N),
    unifyNext(B,O),
    unifyNext(C,P),
    unifyNext(D,Q),
    unifyNext(E,R),
    unifyNext(F,S),
    unifyNext(G,T),
    unifyNext(H,U),
    unifyNext(I,V),
    r_subNotFin(r_2ora0(N,O,P,Q,R,S,T,U,V,$(W,X,Y,Z)),$(W,X,Y,Z),J,K,L,M).
ora(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    addrs1(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_2ora0(F,O,P,Q,R,S,T,U,V,$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_1and0(A,B,C,D,E,F,$(G,H,I,J)):-
    r_subFin(I,J),
    r_1and0(A,B,C,D,E,F,G,H).
r_1and0(A,B,C,D,E,F,$(G,H,I,J)):-
    unifyNext(A,K),
    unifyNext(B,L),
    unifyNext(C,M),
    unifyNext(D,N),
    unifyNext(E,O),
    unifyNext(F,P),
    r_subNotFin(r_1and0(K,L,M,N,O,P,$(Q,R,S,T)),$(Q,R,S,T),G,H,I,J).
r_2and0(A,B,C,D,E,F,G,H,I,J,K):-
    uconst(F,L),
    uconst(G,M),
    uconst(H,N),
    uconst(I,O),
    r_subBegin(J,P,Q,R),
    r_eq(A,B,Q,S),
    r_eq(C,D,S,T),
    read(B,D,T,['$t'(U,V,W,$(X,Y,notEmpty))|Z]),
    r_1and0(C,E,L,M,N,O,$(J,K,P,['$t'(U,V,W,$(X,Y,notEmpty))|Z])).
r_0and0(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_0and0(A,B,C).
r_0and0(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_0and0(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
r_1and0(A,B,C,D,E,F,G,H):-
    unifyNow(B,I),
    uconst(C,J),
    uconst(D,K),
    uconst(E,L),
    uconst(F,M),
    r_subBegin(G,N,O,P),
    r_eq(A,B,O,['$t'(Q,R,S,$(T,U,notEmpty))|V]),
    r_read_value(a,J),
    r_read_value(a,K),
    L is K/\I,
    J<=L,
    r_0and0(M,$(G,H,N,['$t'(Q,R,S,$(T,U,notEmpty))|V])).
r_0and0(A,B,C):-
    uconst(A,D),
    r_read_value(a,D),
    setnz(D,B,C).
r_2and0(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    r_subFin(L,M),
    r_2and0(A,B,C,D,E,F,G,H,I,J,K).
r_2and0(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    unifyNext(A,N),
    unifyNext(B,O),
    unifyNext(C,P),
    unifyNext(D,Q),
    unifyNext(E,R),
    unifyNext(F,S),
    unifyNext(G,T),
    unifyNext(H,U),
    unifyNext(I,V),
    r_subNotFin(r_2and0(N,O,P,Q,R,S,T,U,V,$(W,X,Y,Z)),$(W,X,Y,Z),J,K,L,M).
and(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    addrs1(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_2and0(F,O,P,Q,R,S,T,U,V,$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_1eor0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    r_subFin(J,K),
    r_1eor0(A,B,C,D,E,F,G,H,I).
r_1eor0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    unifyNext(A,L),
    unifyNext(B,M),
    unifyNext(C,N),
    unifyNext(D,O),
    unifyNext(E,P),
    unifyNext(F,Q),
    unifyNext(G,R),
    r_subNotFin(r_1eor0(L,M,N,O,P,Q,R,$(S,T,U,V)),$(S,T,U,V),H,I,J,K).
r_2eor0(A,B,C,D,E,F,G,H,I,J,K,L):-
    uconst(F,M),
    uconst(G,N),
    uconst(H,O),
    uconst(I,P),
    uconst(J,Q),
    r_subBegin(K,R,S,T),
    r_eq(A,B,S,U),
    r_eq(C,D,U,V),
    read(B,D,V,['$t'(W,X,Y,$(Z,A1,notEmpty))|B1]),
    r_1eor0(C,E,M,N,O,P,Q,$(K,L,R,['$t'(W,X,Y,$(Z,A1,notEmpty))|B1])).
r_0eor0(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_0eor0(A,B,C).
r_0eor0(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_0eor0(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
r_1eor0(A,B,C,D,E,F,G,H,I):-
    unifyNow(B,J),
    uconst(C,K),
    uconst(D,L),
    uconst(E,M),
    uconst(F,N),
    uconst(G,O),
    r_subBegin(H,P,Q,R),
    r_eq(A,B,Q,['$t'(S,T,U,$(V,W,notEmpty))|X]),
    r_read_value(a,K),
    r_read_value(a,L),
    r_read_value(a,M),
    N is-(L)/\J\/(M/\ -(J)),
    K<=N,
    r_0eor0(O,$(H,I,P,['$t'(S,T,U,$(V,W,notEmpty))|X])).
r_0eor0(A,B,C):-
    uconst(A,D),
    r_read_value(a,D),
    setnz(D,B,C).
r_2eor0(A,B,C,D,E,F,G,H,I,J,$(K,L,M,N)):-
    r_subFin(M,N),
    r_2eor0(A,B,C,D,E,F,G,H,I,J,K,L).
r_2eor0(A,B,C,D,E,F,G,H,I,J,$(K,L,M,N)):-
    unifyNext(A,O),
    unifyNext(B,P),
    unifyNext(C,Q),
    unifyNext(D,R),
    unifyNext(E,S),
    unifyNext(F,T),
    unifyNext(G,U),
    unifyNext(H,V),
    unifyNext(I,W),
    unifyNext(J,X),
    r_subNotFin(r_2eor0(O,P,Q,R,S,T,U,V,W,X,$(Y,Z,A1,B1)),$(Y,Z,A1,B1),K,L,M,N).
eor(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    addrs1(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_2eor0(F,O,P,Q,R,S,T,U,V,W,$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_0adc0(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_0adc0(A,B,C,D,E,F).
r_0adc0(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_0adc0(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
r_1adc0(A,B,C,D,E,F,G,H,I):-
    uconst(E,J),
    uconst(F,K),
    uconst(G,L),
    r_subBegin(H,M,N,O),
    r_eq(A,B,N,P),
    r_eq(C,D,P,Q),
    read(B,D,Q,['$t'(R,S,T,$(U,V,notEmpty))|W]),
    r_0adc0(J,K,L,C,$(H,I,M,['$t'(R,S,T,$(U,V,notEmpty))|W])).
r_0adc0(A,B,C,D,E,F):-
    uconst(A,G),
    uconst(B,H),
    uconst(C,I),
    unifyNow(D,J),
    r_read_value(a,G),
    r_read_value(c,H),
    I is G+H+J,
    decimal_adjust(I,E,F).
r_1adc0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    r_subFin(J,K),
    r_1adc0(A,B,C,D,E,F,G,H,I).
r_1adc0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    unifyNext(A,L),
    unifyNext(B,M),
    unifyNext(C,N),
    unifyNext(D,O),
    unifyNext(E,P),
    unifyNext(F,Q),
    unifyNext(G,R),
    r_subNotFin(r_1adc0(L,M,N,O,P,Q,R,$(S,T,U,V)),$(S,T,U,V),H,I,J,K).
adc(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    addrs1(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_1adc0(F,O,P,Q,R,S,T,$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_0sta0(A,B,C,D):-
    uconst(A,E),
    r_read_value(a,E),
    write(B,E,C,D).
r_0sta0(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_0sta0(A,B,C,D).
r_0sta0(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_0sta0(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
sta(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    r_read_value(ir,I),
    I\==137,
    !,
    addrs1(G,H,['$t'(J,K,L,$(M,N,notEmpty))|O]),
    r_0sta0(P,F,$(A,B,C,['$t'(J,K,L,$(M,N,notEmpty))|O])).
r_1lda0(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_1lda0(A,B,C,D,E,F).
r_1lda0(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_1lda0(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
r_2lda0(A,B,C,D,E,F,G,H,I):-
    uconst(F,J),
    uconst(G,K),
    r_subBegin(H,L,M,N),
    r_eq(A,B,M,O),
    r_eq(C,D,O,P),
    read(B,D,P,['$t'(Q,R,S,$(T,U,notEmpty))|V]),
    r_1lda0(C,E,J,K,$(H,I,L,['$t'(Q,R,S,$(T,U,notEmpty))|V])).
r_0lda0(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_0lda0(A,B,C).
r_0lda0(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_0lda0(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
r_1lda0(A,B,C,D,E,F):-
    unifyNow(B,G),
    uconst(C,H),
    uconst(D,I),
    r_subBegin(E,J,K,L),
    r_eq(A,B,K,['$t'(M,N,O,$(P,Q,notEmpty))|R]),
    r_read_value(a,H),
    H<=G,
    r_0lda0(I,$(E,F,J,['$t'(M,N,O,$(P,Q,notEmpty))|R])).
r_0lda0(A,B,C):-
    uconst(A,D),
    r_read_value(a,D),
    setnz(D,B,C).
r_2lda0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    r_subFin(J,K),
    r_2lda0(A,B,C,D,E,F,G,H,I).
r_2lda0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    unifyNext(A,L),
    unifyNext(B,M),
    unifyNext(C,N),
    unifyNext(D,O),
    unifyNext(E,P),
    unifyNext(F,Q),
    unifyNext(G,R),
    r_subNotFin(r_2lda0(L,M,N,O,P,Q,R,$(S,T,U,V)),$(S,T,U,V),H,I,J,K).
lda(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    addrs1(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_2lda0(F,O,P,Q,R,S,T,$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_2cmp0(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_2cmp0(A,B,C,D,E,F).
r_2cmp0(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_2cmp0(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
r_3cmp0(A,B,C,D,E,F,G,H,I):-
    uconst(F,J),
    uconst(G,K),
    r_subBegin(H,L,M,N),
    r_eq(A,B,M,O),
    r_eq(C,D,O,P),
    read(B,D,P,['$t'(Q,R,S,$(T,U,notEmpty))|V]),
    r_2cmp0(C,E,J,K,$(H,I,L,['$t'(Q,R,S,$(T,U,notEmpty))|V])).
r_1cmp0(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_1cmp0(A,B,C).
r_1cmp0(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_1cmp0(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
r_2cmp0(A,B,C,D,E,F):-
    unifyNow(B,G),
    uconst(C,H),
    uconst(D,I),
    r_subBegin(E,J,K,L),
    r_eq(A,B,K,M),
    r_read_value(a,H),
    I is H-G,
    setnz(I,M,['$t'(N,O,P,$(Q,R,notEmpty))|S]),
    r_1cmp0(A,$(E,F,J,['$t'(N,O,P,$(Q,R,notEmpty))|S])).
r_1cmp0(A,B,C):-
    r_0cmp0(A,B,C).
r_0cmp0(A,B,B):-
    unifyNow(A,C),
    r_read_value(a,D),
    D>C,
    !,
    r_read_value(c,E),
    E<=1.
r_0cmp0(A,B,B):-
    r_read_value(c,C),
    C<=0.
r_3cmp0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    r_subFin(J,K),
    r_3cmp0(A,B,C,D,E,F,G,H,I).
r_3cmp0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    unifyNext(A,L),
    unifyNext(B,M),
    unifyNext(C,N),
    unifyNext(D,O),
    unifyNext(E,P),
    unifyNext(F,Q),
    unifyNext(G,R),
    r_subNotFin(r_3cmp0(L,M,N,O,P,Q,R,$(S,T,U,V)),$(S,T,U,V),H,I,J,K).
cmp(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    addrs1(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_3cmp0(F,O,P,Q,R,S,T,$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_0sbc0(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_0sbc0(A,B,C,D,E,F).
r_0sbc0(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_0sbc0(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
r_1sbc0(A,B,C,D,E,F,G,H,I):-
    uconst(E,J),
    uconst(F,K),
    uconst(G,L),
    r_subBegin(H,M,N,O),
    r_eq(A,B,N,P),
    r_eq(C,D,P,Q),
    read(B,D,Q,['$t'(R,S,T,$(U,V,notEmpty))|W]),
    r_0sbc0(J,K,L,C,$(H,I,M,['$t'(R,S,T,$(U,V,notEmpty))|W])).
r_0sbc0(A,B,C,D,E,F):-
    uconst(A,G),
    uconst(B,H),
    uconst(C,I),
    unifyNow(D,J),
    r_read_value(a,G),
    r_read_value(c,H),
    I is G+H-J,
    decimal_adjust(I,E,F).
r_1sbc0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    r_subFin(J,K),
    r_1sbc0(A,B,C,D,E,F,G,H,I).
r_1sbc0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    unifyNext(A,L),
    unifyNext(B,M),
    unifyNext(C,N),
    unifyNext(D,O),
    unifyNext(E,P),
    unifyNext(F,Q),
    unifyNext(G,R),
    r_subNotFin(r_1sbc0(L,M,N,O,P,Q,R,$(S,T,U,V)),$(S,T,U,V),H,I,J,K).
sbc(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    addrs1(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_1sbc0(F,O,P,Q,R,S,T,$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_0get22(A,B,['$t'((r_0get22(C,D,E,F),G),(r_read_value(c,H),I is J+H<<8,K=I,L),M,N)|E],['$t'(G,L,M,N)|F]):-
    unifyNowNext(A,K,C),
    unifyNowNext(B,J,D).
get2(A,B,C,D):-
    r_read_value(ir,E),
    F is E>>2/\7,
    get2('$t'(F,G),H,B,C,I),
    r_0get22(A,H,I,D).
r_1get23(A,B,C,D,E):-
    uconst(A,F),
    unifyNow(B,F),
    r_0get23(B,F,D,G),
    read(B,C,G,E).
r_0get23(A,B,['$t'((r_0get23(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_1get23(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_1get23(A,B,C,D,E).
r_1get23(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_1get23(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
get2(A,B,C,D,E):-
    uatom(A,1),
    r_subBegin(D,F,G,H),
    r_eq(C,I,G,J),
    zp(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_1get23(Q,C,B,$(D,E,F,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_2get23(A,B,['$t'((r_2get23(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_3get23(A,B,['$t'((r_3get23(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
get2(A,B,C,D,E):-
    uatom(A,2),
    unifyNow(C,F),
    r_read_value(a,G),
    r_2get23(B,G,D,H),
    r_3get23(C,F,H,E).
r_5get23(A,B,C,D,E):-
    uconst(A,F),
    unifyNow(B,F),
    r_4get23(B,F,D,G),
    read(B,C,G,E).
r_4get23(A,B,['$t'((r_4get23(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_5get23(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_5get23(A,B,C,D,E).
r_5get23(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_5get23(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
get2(A,B,C,D,E):-
    uatom(A,3),
    r_subBegin(D,F,G,H),
    r_eq(C,I,G,J),
    abs(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_5get23(Q,C,B,$(D,E,F,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_7get23(A,B,C,D,E):-
    uconst(A,F),
    unifyNow(B,F),
    r_6get23(B,F,D,G),
    read(B,C,G,E).
r_6get23(A,B,['$t'((r_6get23(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_7get23(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_7get23(A,B,C,D,E).
r_7get23(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_7get23(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
get2(A,B,C,D,E):-
    uatom(A,5),
    r_subBegin(D,F,G,H),
    r_eq(C,I,G,J),
    zpx(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_7get23(Q,C,B,$(D,E,F,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_9get23(A,B,C,D,E):-
    uconst(A,F),
    unifyNow(B,F),
    r_8get23(B,F,D,G),
    read(B,C,G,E).
r_8get23(A,B,['$t'((r_8get23(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_9get23(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_9get23(A,B,C,D,E).
r_9get23(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_9get23(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
get2(A,B,C,D,E):-
    uatom(A,7),
    r_subBegin(D,F,G,H),
    r_eq(C,I,G,J),
    absx(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_9get23(Q,C,B,$(D,E,F,['$t'(K,L,M,$(N,O,notEmpty))|P])).
get2(A,B,C,D,E):-
    opex(D,E).
r_1put22(A,B,C):-
    setnz(A,B,C).
r_0put22(A,B,['$t'((r_0put22(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
r_1put22(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_1put22(A,B,C).
r_1put22(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_1put22(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
put2(A,B,C,D):-
    r_subBegin(C,E,F,G),
    r_eq(H,'$t'(I,J),F,K),
    r_eq(A,'$t'(L,M),K,N),
    r_eq(B,O,N,P),
    r_read_value(ir,Q),
    I is Q>>2/\7,
    put2('$t'(I,J),'$t'(L,M),O,P,R),
    r_0put22('$t'(L,M),L,R,['$t'(S,T,U,$(V,W,notEmpty))|X]),
    r_1put22(A,$(C,D,E,['$t'(S,T,U,$(V,W,notEmpty))|X])).
put2(A,B,C,D,E):-
    uatom(A,1),
    write(C,B,D,E).
put2(A,B,C,D,E):-
    uatom(A,3),
    write(C,B,D,E).
put2(A,B,C,D,E):-
    uatom(A,5),
    write(C,B,D,E).
put2(A,B,C,D,E):-
    uatom(A,7),
    write(C,B,D,E).
put2(A,B,C,D,D):-
    uatom(A,2),
    unifyNow(B,E),
    r_read_value(a,F),
    F<=E.
put2(A,B,C,D,E):-
    opex(D,E).
r_0asl0(A,B,C,D,E,F,G,H,I):-
    uconst(A,J),
    unifyNow(B,K),
    unifyNow(C,J),
    uconst(D,L),
    uconst(E,M),
    uconst(F,N),
    J is K<<1,
    r_read_value(c,L),
    M is J>>8/\1,
    L<=M,
    N is J/\255,
    put2(N,G,H,I).
r_0asl0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    r_subFin(J,K),
    r_0asl0(A,B,C,D,E,F,G,H,I).
r_0asl0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    unifyNext(A,L),
    unifyNext(B,M),
    unifyNext(C,N),
    unifyNext(D,O),
    unifyNext(E,P),
    unifyNext(F,Q),
    unifyNext(G,R),
    r_subNotFin(r_0asl0(L,M,N,O,P,Q,R,$(S,T,U,V)),$(S,T,U,V),H,I,J,K).
asl(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    r_eq(I,J,H,K),
    get2(G,J,K,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_0asl0(R,F,S,T,U,V,I,$(A,B,C,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
r_0rol0(A,B,C,D,E,F,G,H,I,J):-
    uconst(A,K),
    uconst(B,L),
    unifyNow(C,M),
    unifyNow(D,L),
    uconst(E,N),
    uconst(F,O),
    uconst(G,P),
    r_read_value(c,K),
    L is M<<1+K,
    r_read_value(c,N),
    O is L>>8/\1,
    N<=O,
    P is L/\255,
    put2(P,H,I,J).
r_0rol0(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    r_subFin(K,L),
    r_0rol0(A,B,C,D,E,F,G,H,I,J).
r_0rol0(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    unifyNext(A,M),
    unifyNext(B,N),
    unifyNext(C,O),
    unifyNext(D,P),
    unifyNext(E,Q),
    unifyNext(F,R),
    unifyNext(G,S),
    unifyNext(H,T),
    r_subNotFin(r_0rol0(M,N,O,P,Q,R,S,T,$(U,V,W,X)),$(U,V,W,X),I,J,K,L).
rol(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    r_eq(I,J,H,K),
    get2(G,J,K,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_0rol0(R,S,F,T,U,V,W,I,$(A,B,C,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
r_0lsr0(A,B,C,D,E,F,G,H,I):-
    uconst(A,J),
    unifyNow(B,K),
    unifyNow(C,J),
    uconst(D,L),
    uconst(E,M),
    uconst(F,N),
    J is K>>1/\127,
    r_read_value(c,L),
    M is K/\1,
    L<=M,
    N is J/\255,
    put2(N,G,H,I).
r_0lsr0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    r_subFin(J,K),
    r_0lsr0(A,B,C,D,E,F,G,H,I).
r_0lsr0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    unifyNext(A,L),
    unifyNext(B,M),
    unifyNext(C,N),
    unifyNext(D,O),
    unifyNext(E,P),
    unifyNext(F,Q),
    unifyNext(G,R),
    r_subNotFin(r_0lsr0(L,M,N,O,P,Q,R,$(S,T,U,V)),$(S,T,U,V),H,I,J,K).
lsr(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    r_eq(I,J,H,K),
    get2(G,J,K,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_0lsr0(R,F,S,T,U,V,I,$(A,B,C,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
r_0ror0(A,B,C,D,E,F,G,H,I):-
    uconst(A,J),
    unifyNow(B,K),
    unifyNow(C,J),
    uconst(D,L),
    uconst(E,M),
    uconst(F,N),
    J is K>>1/\127+(K/\1)<<8,
    r_read_value(c,L),
    M is K/\1,
    L<=M,
    N is J/\255,
    put2(N,G,H,I).
r_0ror0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    r_subFin(J,K),
    r_0ror0(A,B,C,D,E,F,G,H,I).
r_0ror0(A,B,C,D,E,F,G,$(H,I,J,K)):-
    unifyNext(A,L),
    unifyNext(B,M),
    unifyNext(C,N),
    unifyNext(D,O),
    unifyNext(E,P),
    unifyNext(F,Q),
    unifyNext(G,R),
    r_subNotFin(r_0ror0(L,M,N,O,P,Q,R,$(S,T,U,V)),$(S,T,U,V),H,I,J,K).
ror(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    r_eq(I,J,H,K),
    get2(G,J,K,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_0ror0(R,F,S,T,U,V,I,$(A,B,C,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
stx(A,B):-
    r_read_value(ir,C),
    D is C>>2/\7,
    r_read_value(x,E),
    stx('$t'(D,F),E,A,B).
r_0stx2(A,B,C,D):-
    write(A,B,C,D).
r_0stx2(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_0stx2(A,B,C,D).
r_0stx2(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_0stx2(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
stx(A,B,C,D):-
    uatom(A,1),
    r_subBegin(C,E,F,G),
    r_eq(H,I,F,J),
    zp(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_0stx2(H,B,$(C,D,E,['$t'(K,L,M,$(N,O,notEmpty))|P])).
stx(A,B,C,C):-
    uatom(A,2),
    unifyNow(B,D),
    r_read_value(a,E),
    E<=D.
r_1stx2(A,B,C,D):-
    write(A,B,C,D).
r_1stx2(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_1stx2(A,B,C,D).
r_1stx2(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_1stx2(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
stx(A,B,C,D):-
    uatom(A,3),
    r_subBegin(C,E,F,G),
    r_eq(H,I,F,J),
    as(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_1stx2(H,B,$(C,D,E,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_2stx2(A,B,C,D):-
    write(A,B,C,D).
r_2stx2(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_2stx2(A,B,C,D).
r_2stx2(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_2stx2(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
stx(A,B,C,D):-
    uatom(A,5),
    r_subBegin(C,E,F,G),
    r_eq(H,I,F,J),
    zpy(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_2stx2(H,B,$(C,D,E,['$t'(K,L,M,$(N,O,notEmpty))|P])).
stx(A,B,C,C):-
    uatom(A,6),
    unifyNow(B,D),
    r_read_value(s,E),
    E<=D.
stx(A,B,C,D):-
    opex(C,D).
r_0ldx0(A,$(B,C,D,E)):-
    r_subFin(D,E),
    r_0ldx0(A,B,C).
r_0ldx0(A,$(B,C,D,E)):-
    unifyNext(A,F),
    r_subNotFin(r_0ldx0(F,$(G,H,I,J)),$(G,H,I,J),B,C,D,E).
r_1ldx0(A,B,C,D,E,F):-
    unifyNow(B,G),
    uconst(C,H),
    uconst(D,I),
    r_subBegin(E,J,K,L),
    r_eq(A,B,K,['$t'(M,N,O,$(P,Q,notEmpty))|R]),
    r_read_value(x,H),
    H<=G,
    r_0ldx0(I,$(E,F,J,['$t'(M,N,O,$(P,Q,notEmpty))|R])).
r_0ldx0(A,B,C):-
    uconst(A,D),
    r_read_value(x,D),
    setnz(D,B,C).
r_1ldx0(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_1ldx0(A,B,C,D,E,F).
r_1ldx0(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_1ldx0(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
ldx(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,'$t'(G,H),D,I),
    r_eq(J,K,I,L),
    r_read_value(ir,M),
    G is M>>2/\7,
    ldx('$t'(G,H),K,L,['$t'(N,O,P,$(Q,R,notEmpty))|S]),
    r_1ldx0(J,T,U,V,$(A,B,C,['$t'(N,O,P,$(Q,R,notEmpty))|S])).
r_0ldx2(A,B,C,D):-
    read(A,B,C,D).
r_0ldx2(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_0ldx2(A,B,C,D).
r_0ldx2(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_0ldx2(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
ldx(A,B,C,D):-
    uatom(A,0),
    r_subBegin(C,E,F,G),
    r_eq(H,I,F,J),
    immed(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_0ldx2(H,B,$(C,D,E,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_1ldx2(A,B,C,D):-
    read(A,B,C,D).
r_1ldx2(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_1ldx2(A,B,C,D).
r_1ldx2(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_1ldx2(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
ldx(A,B,C,D):-
    uatom(A,1),
    r_subBegin(C,E,F,G),
    r_eq(H,I,F,J),
    zp(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_1ldx2(H,B,$(C,D,E,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_2ldx2(A,B,['$t'((r_2ldx2(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
ldx(A,B,C,D):-
    uatom(A,2),
    r_read_value(a,E),
    r_2ldx2(B,E,C,D).
r_3ldx2(A,B,C,D):-
    read(A,B,C,D).
r_3ldx2(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_3ldx2(A,B,C,D).
r_3ldx2(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_3ldx2(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
ldx(A,B,C,D):-
    uatom(A,3),
    r_subBegin(C,E,F,G),
    r_eq(H,I,F,J),
    abs(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_3ldx2(H,B,$(C,D,E,['$t'(K,L,M,$(N,O,notEmpty))|P])).
ldx(A,B,C,D):-
    uatom(A,4),
    opex(C,D).
r_4ldx2(A,B,C,D):-
    read(A,B,C,D).
r_4ldx2(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_4ldx2(A,B,C,D).
r_4ldx2(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_4ldx2(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
ldx(A,B,C,D):-
    uatom(A,5),
    r_subBegin(C,E,F,G),
    r_eq(H,I,F,J),
    zpy(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_4ldx2(H,B,$(C,D,E,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_5ldx2(A,B,['$t'((r_5ldx2(C,D,E,F),G),(H=D,I),J,K)|E],['$t'(G,I,J,K)|F]):-
    unifyNowNext(A,H,C),
    uconst(B,D).
ldx(A,B,C,D):-
    uatom(A,6),
    r_read_value(s,E),
    r_5ldx2(B,E,C,D).
r_6ldx2(A,B,C,D):-
    read(A,B,C,D).
r_6ldx2(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_6ldx2(A,B,C,D).
r_6ldx2(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_6ldx2(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
ldx(A,B,C,D):-
    uatom(A,7),
    r_subBegin(C,E,F,G),
    r_eq(H,I,F,J),
    absy(I,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_6ldx2(H,B,$(C,D,E,['$t'(K,L,M,$(N,O,notEmpty))|P])).
dec(A,B):-
    r_read_value(ir,202),
    !,
    r_read_value(x,C),
    D is C-1,
    E=D,
    r_read_value(x,F),
    F<=E,
    setnz('$t'(E,G),A,B).
r_0dec0(A,B,C,D,E):-
    uconst(A,F),
    unifyNow(B,G),
    F is G-1,
    put2(F,C,D,E).
r_0dec0(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_0dec0(A,B,C,D,E).
r_0dec0(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_0dec0(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
dec(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    r_eq(I,J,H,K),
    get2(G,J,K,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_0dec0(R,F,I,$(A,B,C,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
inc(A,A):-
    r_read_value(ir,234),
    !.
r_0inc0(A,B,C,D,E):-
    uconst(A,F),
    unifyNow(B,G),
    F is G+1,
    put2(F,C,D,E).
r_0inc0(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_0inc0(A,B,C,D,E).
r_0inc0(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_0inc0(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
inc(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    r_eq(I,J,H,K),
    get2(G,J,K,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_0inc0(R,F,I,$(A,B,C,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
brk(A,A):-
    r_read_value(ready,B),
    B<=0.
php(A,B):-
    r_read_value(p,C),
    push(C,A,B).
plp(A,B):-
    pull('$t'(C,D),A,B),
    r_read_value(p,E),
    E<=C.
pha(A,B):-
    r_read_value(a,C),
    push(C,A,B).
r_0pla0(A,B,C,D):-
    uconst(A,E),
    unifyNow(B,F),
    r_read_value(a,E),
    E<=F,
    setnz(B,C,D).
r_0pla0(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_0pla0(A,B,C,D).
r_0pla0(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_0pla0(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
pla(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    pull(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_0pla0(O,F,$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
bpl(A,B):-
    r_read_value(n,C),
    boolNot(C,D,A,E),
    branch(D,E,B).
bmi(A,B):-
    r_read_value(n,C),
    bool(C,D,A,E),
    branch(D,E,B).
bvc(A,B):-
    r_read_value(v,C),
    boolNot(C,D,A,E),
    branch(D,E,B).
bvs(A,B):-
    r_read_value(v,C),
    bool(C,D,A,E),
    branch(D,E,B).
bcc(A,B):-
    r_read_value(c,C),
    boolNot(C,D,A,E),
    branch(D,E,B).
bne(A,B):-
    r_read_value(z,C),
    boolNot(C,D,A,E),
    branch(D,E,B).
beq(A,B):-
    r_read_value(z,C),
    bool(C,D,A,E),
    branch(D,E,B).
bcs(A,B):-
    r_read_value(c,C),
    bool(C,D,A,E),
    branch(D,E,B).
bool(A,B,C,C):-
    uatom(A,1),
    uatom(B,1).
bool(A,B,C,C):-
    uatom(A,0),
    uatom(B,0).
boolNot(A,B,C,C):-
    uatom(A,1),
    uatom(B,0).
boolNot(A,B,C,C):-
    uatom(A,0),
    uatom(B,1).
clc(A,A):-
    r_read_value(c,B),
    B<=0.
sec(A,A):-
    r_read_value(c,B),
    B<=1.
cli(A,A):-
    r_read_value(i,B),
    B<=0.
sei(A,A):-
    r_read_value(i,B),
    B<=1.
clv(A,A):-
    r_read_value(v,B),
    B<=0.
cld(A,A):-
    r_read_value(d,B),
    B<=0.
sed(A,A):-
    r_read_value(d,B),
    B<=1.
r_1jsr0(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_1jsr0(A,B,C,D,E).
r_1jsr0(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_1jsr0(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
r_2jsr0(A,B,C,D,E,F,G):-
    uconst(A,H),
    uconst(B,I),
    uconst(E,J),
    r_subBegin(F,K,L,M),
    r_read_value(pc,H),
    I is H+1/\255,
    push(I,L,['$t'(N,O,P,$(Q,R,notEmpty))|S]),
    r_1jsr0(C,D,J,$(F,G,K,['$t'(N,O,P,$(Q,R,notEmpty))|S])).
r_0jsr0(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_0jsr0(A,B,C,D).
r_0jsr0(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_0jsr0(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
r_1jsr0(A,B,C,D,E):-
    uconst(C,F),
    r_subBegin(D,G,H,I),
    r_eq(A,B,H,J),
    abs(B,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_0jsr0(F,A,$(D,E,G,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_0jsr0(A,B,C,C):-
    uconst(A,D),
    unifyNow(B,E),
    r_read_value(pc,D),
    D<=E.
r_2jsr0(A,B,C,D,E,$(F,G,H,I)):-
    r_subFin(H,I),
    r_2jsr0(A,B,C,D,E,F,G).
r_2jsr0(A,B,C,D,E,$(F,G,H,I)):-
    unifyNext(A,J),
    unifyNext(B,K),
    unifyNext(C,L),
    unifyNext(D,M),
    unifyNext(E,N),
    r_subNotFin(r_2jsr0(J,K,L,M,N,$(O,P,Q,R)),$(O,P,Q,R),F,G,H,I).
jsr(A,B):-
    r_subBegin(A,C,D,E),
    r_read_value(pc,F),
    G is(F+1)>>8/\255,
    push(G,D,['$t'(H,I,J,$(K,L,notEmpty))|M]),
    r_2jsr0(N,O,P,Q,R,$(A,B,C,['$t'(H,I,J,$(K,L,notEmpty))|M])).
r_0bit1(A,B,B):-
    unifyNow(A,C),
    r_read_value(a,D),
    0 is C/\D,
    !,
    r_read_value(z,E),
    E<=1.
r_0bit1(A,B,B):-
    r_read_value(z,C),
    C<=0.
bit(A,B,C):-
    unifyNow(A,D),
    r_read_value(n,E),
    E<=D,
    r_0bit1(A,B,C).
r_3rti0(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    r_subFin(L,M),
    r_3rti0(A,B,C,D,E,F,G,H,I,J,K).
r_3rti0(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    unifyNext(A,N),
    unifyNext(B,O),
    unifyNext(C,P),
    unifyNext(D,Q),
    unifyNext(E,R),
    unifyNext(F,S),
    unifyNext(G,T),
    unifyNext(H,U),
    unifyNext(I,V),
    r_subNotFin(r_3rti0(N,O,P,Q,R,S,T,U,V,$(W,X,Y,Z)),$(W,X,Y,Z),J,K,L,M).
r_4rti0(A,B,C,D,E,F):-
    unifyNow(B,G),
    uconst(C,H),
    ulist(D,I,J),
    ulist(J,K,L),
    ulist(L,M,N),
    uconst(M,O),
    ulist(N,P,Q),
    ulist(Q,R,S),
    uconst(R,T),
    ulist(S,U,V),
    uconst(U,W),
    ulist(V,X,Y),
    uconst(X,Z),
    ulist(Y,A1,B1),
    uconst(A1,C1),
    unil(B1),
    r_subBegin(E,D1,E1,F1),
    r_eq(A,B,E1,['$t'(G1,H1,I1,$(J1,K1,notEmpty))|L1]),
    r_read_value(p,H),
    H<=G,
    r_3rti0(A,I,K,O,P,T,W,Z,C1,$(E,F,D1,['$t'(G1,H1,I1,$(J1,K1,notEmpty))|L1])).
r_2rti0(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    r_subFin(K,L),
    r_2rti0(A,B,C,D,E,F,G,H,I,J).
r_2rti0(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    unifyNext(A,M),
    unifyNext(B,N),
    unifyNext(C,O),
    unifyNext(D,P),
    unifyNext(E,Q),
    unifyNext(F,R),
    unifyNext(G,S),
    unifyNext(H,T),
    r_subNotFin(r_2rti0(M,N,O,P,Q,R,S,T,$(U,V,W,X)),$(U,V,W,X),I,J,K,L).
r_3rti0(A,B,C,D,E,F,G,H,I,J,K):-
    uconst(D,L),
    uconst(F,M),
    uconst(G,N),
    uconst(H,O),
    uconst(I,P),
    r_subBegin(J,Q,R,S),
    r_eq(A,B,R,T),
    pull(B,T,['$t'(U,V,W,$(X,Y,notEmpty))|Z]),
    r_2rti0(A,C,L,E,M,N,O,P,$(J,K,Q,['$t'(U,V,W,$(X,Y,notEmpty))|Z])).
r_1rti0(A,B,C,D,E,F,$(G,H,I,J)):-
    r_subFin(I,J),
    r_1rti0(A,B,C,D,E,F,G,H).
r_1rti0(A,B,C,D,E,F,$(G,H,I,J)):-
    unifyNext(A,K),
    unifyNext(B,L),
    unifyNext(C,M),
    unifyNext(D,N),
    unifyNext(E,O),
    unifyNext(F,P),
    r_subNotFin(r_1rti0(K,L,M,N,O,P,$(Q,R,S,T)),$(Q,R,S,T),G,H,I,J).
r_2rti0(A,B,C,D,E,F,G,H,I,J):-
    unifyNow(B,K),
    uconst(C,L),
    uconst(E,M),
    uconst(F,N),
    uconst(G,O),
    uconst(H,P),
    r_subBegin(I,Q,R,S),
    r_eq(A,B,R,['$t'(T,U,V,$(W,X,notEmpty))|Y]),
    r_read_value(pc,L),
    L<=K,
    r_1rti0(A,D,M,N,O,P,$(I,J,Q,['$t'(T,U,V,$(W,X,notEmpty))|Y])).
r_0rti0(A,B,C,D,E,$(F,G,H,I)):-
    r_subFin(H,I),
    r_0rti0(A,B,C,D,E,F,G).
r_0rti0(A,B,C,D,E,$(F,G,H,I)):-
    unifyNext(A,J),
    unifyNext(B,K),
    unifyNext(C,L),
    unifyNext(D,M),
    unifyNext(E,N),
    r_subNotFin(r_0rti0(J,K,L,M,N,$(O,P,Q,R)),$(O,P,Q,R),F,G,H,I).
r_1rti0(A,B,C,D,E,F,G,H):-
    uconst(C,I),
    uconst(D,J),
    uconst(E,K),
    uconst(F,L),
    r_subBegin(G,M,N,O),
    r_eq(A,B,N,P),
    pull(B,P,['$t'(Q,R,S,$(T,U,notEmpty))|V]),
    r_0rti0(I,J,K,A,L,$(G,H,M,['$t'(Q,R,S,$(T,U,notEmpty))|V])).
r_0rti0(A,B,C,D,E,F,F):-
    uconst(A,G),
    uconst(B,H),
    uconst(C,I),
    unifyNow(D,J),
    uconst(E,K),
    r_read_value(pc,G),
    r_read_value(pc,H),
    I is J<<8+H,
    G<=I,
    r_read_value(b,K),
    K<=0.
r_4rti0(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_4rti0(A,B,C,D,E,F).
r_4rti0(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_4rti0(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
rti(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    pull(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_4rti0(F,O,P,[Q,R,S,T,U,V,W,X],$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_1jmp0(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_1jmp0(A,B,C,D,E).
r_1jmp0(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_1jmp0(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
r_2jmp0(A,B,C,D,E,F,G):-
    unifyNow(B,H),
    uconst(C,I),
    uconst(E,J),
    r_subBegin(F,K,L,M),
    r_eq(A,B,L,['$t'(N,O,P,$(Q,R,notEmpty))|S]),
    r_read_value(pc,I),
    I<=H,
    r_1jmp0(A,D,J,$(F,G,K,['$t'(N,O,P,$(Q,R,notEmpty))|S])).
r_0jmp0(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_0jmp0(A,B,C,D).
r_0jmp0(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_0jmp0(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
r_1jmp0(A,B,C,D,E):-
    uconst(C,F),
    r_subBegin(D,G,H,I),
    r_eq(A,B,H,J),
    abs(B,J,['$t'(K,L,M,$(N,O,notEmpty))|P]),
    r_0jmp0(F,A,$(D,E,G,['$t'(K,L,M,$(N,O,notEmpty))|P])).
r_0jmp0(A,B,C,C):-
    uconst(A,D),
    unifyNow(B,E),
    r_read_value(pc,D),
    D<=E.
r_2jmp0(A,B,C,D,E,$(F,G,H,I)):-
    r_subFin(H,I),
    r_2jmp0(A,B,C,D,E,F,G).
r_2jmp0(A,B,C,D,E,$(F,G,H,I)):-
    unifyNext(A,J),
    unifyNext(B,K),
    unifyNext(C,L),
    unifyNext(D,M),
    unifyNext(E,N),
    r_subNotFin(r_2jmp0(J,K,L,M,N,$(O,P,Q,R)),$(O,P,Q,R),F,G,H,I).
jmp(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    r_read_value(ir,108),
    !,
    abs(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_2jmp0(F,O,P,Q,R,$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_3jmp0(A,B,C,C):-
    uconst(A,D),
    unifyNow(B,E),
    r_read_value(pc,D),
    D<=E.
r_3jmp0(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_3jmp0(A,B,C,D).
r_3jmp0(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_3jmp0(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
jmp(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    abs(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_3jmp0(O,F,$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
r_2rts0(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    r_subFin(L,M),
    r_2rts0(A,B,C,D,E,F,G,H,I,J,K).
r_2rts0(A,B,C,D,E,F,G,H,I,$(J,K,L,M)):-
    unifyNext(A,N),
    unifyNext(B,O),
    unifyNext(C,P),
    unifyNext(D,Q),
    unifyNext(E,R),
    unifyNext(F,S),
    unifyNext(G,T),
    unifyNext(H,U),
    unifyNext(I,V),
    r_subNotFin(r_2rts0(N,O,P,Q,R,S,T,U,V,$(W,X,Y,Z)),$(W,X,Y,Z),J,K,L,M).
r_3rts0(A,B,C,D,E,F):-
    unifyNow(B,G),
    uconst(C,H),
    ulist(D,I,J),
    ulist(J,K,L),
    ulist(L,M,N),
    uconst(M,O),
    ulist(N,P,Q),
    uconst(P,R),
    ulist(Q,S,T),
    uconst(S,U),
    ulist(T,V,W),
    uconst(V,X),
    ulist(W,Y,Z),
    uconst(Y,A1),
    ulist(Z,B1,C1),
    uconst(B1,D1),
    unil(C1),
    r_subBegin(E,E1,F1,G1),
    r_eq(A,B,F1,['$t'(H1,I1,J1,$(K1,L1,notEmpty))|M1]),
    r_read_value(pc,H),
    H<=G,
    r_2rts0(A,I,K,O,R,U,X,A1,D1,$(E,F,E1,['$t'(H1,I1,J1,$(K1,L1,notEmpty))|M1])).
r_1rts0(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    r_subFin(K,L),
    r_1rts0(A,B,C,D,E,F,G,H,I,J).
r_1rts0(A,B,C,D,E,F,G,H,$(I,J,K,L)):-
    unifyNext(A,M),
    unifyNext(B,N),
    unifyNext(C,O),
    unifyNext(D,P),
    unifyNext(E,Q),
    unifyNext(F,R),
    unifyNext(G,S),
    unifyNext(H,T),
    r_subNotFin(r_1rts0(M,N,O,P,Q,R,S,T,$(U,V,W,X)),$(U,V,W,X),I,J,K,L).
r_2rts0(A,B,C,D,E,F,G,H,I,J,K):-
    uconst(D,L),
    uconst(E,M),
    uconst(F,N),
    uconst(G,O),
    uconst(H,P),
    uconst(I,Q),
    r_subBegin(J,R,S,T),
    r_eq(A,B,S,U),
    pull(B,U,['$t'(V,W,X,$(Y,Z,notEmpty))|A1]),
    r_1rts0(A,C,L,M,N,O,P,Q,$(J,K,R,['$t'(V,W,X,$(Y,Z,notEmpty))|A1])).
r_0rts0(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_0rts0(A,B,C,D,E).
r_0rts0(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_0rts0(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
r_1rts0(A,B,C,D,E,F,G,H,I,J):-
    unifyNow(B,K),
    uconst(C,L),
    uconst(D,M),
    uconst(E,N),
    uconst(F,O),
    uconst(G,P),
    uconst(H,Q),
    r_subBegin(I,R,S,T),
    r_eq(A,B,S,['$t'(U,V,W,$(X,Y,notEmpty))|Z]),
    r_read_value(pc,L),
    r_read_value(pc,M),
    N is K<<8+M,
    L<=N,
    r_0rts0(O,P,Q,$(I,J,R,['$t'(U,V,W,$(X,Y,notEmpty))|Z])).
r_0rts0(A,B,C,D,D):-
    uconst(A,E),
    uconst(B,F),
    uconst(C,G),
    r_read_value(pc,E),
    r_read_value(pc,F),
    G is F+1,
    E<=G.
r_3rts0(A,B,C,D,$(E,F,G,H)):-
    r_subFin(G,H),
    r_3rts0(A,B,C,D,E,F).
r_3rts0(A,B,C,D,$(E,F,G,H)):-
    unifyNext(A,I),
    unifyNext(B,J),
    unifyNext(C,K),
    unifyNext(D,L),
    r_subNotFin(r_3rts0(I,J,K,L,$(M,N,O,P)),$(M,N,O,P),E,F,G,H).
rts(A,B):-
    r_subBegin(A,C,D,E),
    r_eq(F,G,D,H),
    pull(G,H,['$t'(I,J,K,$(L,M,notEmpty))|N]),
    r_3rts0(F,O,P,[Q,R,S,T,U,V,W,X],$(A,B,C,['$t'(I,J,K,$(L,M,notEmpty))|N])).
sty(A,B,C):-
    r_read_value(y,D),
    write(A,D,B,C).
dey(A,B):-
    r_read_value(y,C),
    D is C-1,
    r_read_value(y,E),
    E<=D,
    setnz('$t'(D,F),A,B).
tya(A,B):-
    r_read_value(a,C),
    r_read_value(y,D),
    C<=D,
    r_read_value(y,E),
    setnz(E,A,B).
r_0ldy1(A,B,C,C):-
    uconst(A,D),
    unifyNow(B,E),
    r_read_value(y,D),
    D<=E.
r_0ldy1(A,B,$(C,D,E,F)):-
    r_subFin(E,F),
    r_0ldy1(A,B,C,D).
r_0ldy1(A,B,$(C,D,E,F)):-
    unifyNext(A,G),
    unifyNext(B,H),
    r_subNotFin(r_0ldy1(G,H,$(I,J,K,L)),$(I,J,K,L),C,D,E,F).
ldy(A,B,C):-
    r_subBegin(B,D,E,F),
    r_eq(A,G,E,H),
    r_eq(I,J,H,K),
    read(G,J,K,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_0ldy1(R,I,$(B,C,D,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
tay(A,B):-
    r_read_value(y,C),
    r_read_value(a,D),
    C<=D,
    r_read_value(a,E),
    setnz(E,A,B).
r_1cpy1(A,B,C,D,E):-
    uconst(A,F),
    uconst(B,G),
    unifyNow(C,H),
    r_read_value(y,F),
    G is F-H,
    setnz(G,D,I),
    r_0cpy1(C,I,E).
r_0cpy1(A,B,B):-
    unifyNow(A,C),
    r_read_value(y,D),
    D>C,
    !,
    r_read_value(c,E),
    E<=1.
r_0cpy1(A,B,B):-
    r_read_value(c,C),
    C<=0.
r_1cpy1(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_1cpy1(A,B,C,D,E).
r_1cpy1(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_1cpy1(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
cpy(A,B,C):-
    r_subBegin(B,D,E,F),
    r_eq(A,G,E,H),
    r_eq(I,J,H,K),
    read(G,J,K,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_1cpy1(R,S,I,$(B,C,D,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
iny(A,B):-
    r_read_value(y,C),
    D is C+1,
    r_read_value(y,E),
    E<=D,
    r_read_value(y,F),
    setnz(F,A,B).
r_1cpx1(A,B,C,D,E):-
    uconst(A,F),
    uconst(B,G),
    unifyNow(C,H),
    r_read_value(x,F),
    G is F-H,
    setnz(G,D,I),
    r_0cpx1(C,I,E).
r_0cpx1(A,B,B):-
    unifyNow(A,C),
    r_read_value(x,D),
    D>C,
    !,
    r_read_value(c,E),
    E<=1.
r_0cpx1(A,B,B):-
    r_read_value(c,C),
    C<=0.
r_1cpx1(A,B,C,$(D,E,F,G)):-
    r_subFin(F,G),
    r_1cpx1(A,B,C,D,E).
r_1cpx1(A,B,C,$(D,E,F,G)):-
    unifyNext(A,H),
    unifyNext(B,I),
    unifyNext(C,J),
    r_subNotFin(r_1cpx1(H,I,J,$(K,L,M,N)),$(K,L,M,N),D,E,F,G).
cpx(A,B,C):-
    r_subBegin(B,D,E,F),
    r_eq(A,G,E,H),
    r_eq(I,J,H,K),
    read(G,J,K,['$t'(L,M,N,$(O,P,notEmpty))|Q]),
    r_1cpx1(R,S,I,$(B,C,D,['$t'(L,M,N,$(O,P,notEmpty))|Q])).
inx(A,B):-
    r_read_value(x,C),
    D is C+1,
    r_read_value(x,E),
    E<=D,
    r_read_value(x,F),
    setnz(F,A,B).
